package com.zoe.onelink.logging.biz.annotation;

import com.zoe.onelink.logging.biz.persistent.IBizLogPersistent;
import com.zoe.onelink.logging.biz.persistent.impl.BizLogMessageSlf4jPersistent;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * <p>标题: </p>
 * <p>描述: </p>
 * <p>版权: Copyright (c) 2021</p>
 * <p>公司: 智业软件股份有限公司</p>
 *
 * @version: 1.0
 * @author: ruansheng
 * @date: 2021-10-11
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface BizLog {


    /**
     * 成功消息模板,支持SpEL表达式
     */
    String successMsg();

    /**
     * 失败消息模板,支持SpEL表达
     */
    String failureMsg() default "";

    /**
     * 可选,唯一业务标识
     */
    String bizNo() default "";

    /**
     * 可选,日志标签
     */
    String tag() default "";

    /**
     * 可选,额外信息,支持SpEL表达式
     */
    String detail() default "";

    /**
     * 可选,条件满足时记录日志,支持SpEL表达式
     */
    String condition() default "";

    /**
     * 持久化方式
     */
    Class<? extends IBizLogPersistent> persistent() default BizLogMessageSlf4jPersistent.class;


}
